Promise.prototype._finally = function (callback) {
  return this.then(value => {
    return Promise.resolve(callback())
                  .then(() => value)
  }, error => {
    return Promise.resolve(callback())
                  .then(() => { throw error })
  })
}
